using IcsSEMCtrl.Util;
using System;
namespace IcsSEMCtrl.Global.Device
{
	public class CarrierType
	{
		public const int _CA_AGVPORT = 0;
		public const int _CA_FULL = 1;
		public const int _CA_EMPTY = 2;
		public const int _CA_CLEANREQUEST = 3;
		public const int _CA_ERROR = 4;
		public const int _CA_BOX = 5;
		public const int _CA_CST = 6;
		public const int _CA_TRAY = 7;
		public const int _CA_IPS = 8;
		public const int _CA_TN = 9;
		private int _value;
		private static int _size;
		private static CarrierType[] _array;
		public static string[] displayStrings;
		public static CarrierType[] displayValues;
		public static CarrierType CA_AGVPORT;
		public static CarrierType CA_FULL;
		public static CarrierType CA_EMPTY;
		public static CarrierType CA_CLEANREQUEST;
		public static CarrierType CA_ERROR;
		public static CarrierType CA_BOX;
		public static CarrierType CA_CST;
		public static CarrierType CA_TRAY;
		public static CarrierType CA_IPS;
		public static CarrierType CA_TN;
		public static CarrierType IT_ENUM_MAX;
		static CarrierType()
		{
			CarrierType._size = 10;
			CarrierType._array = new CarrierType[CarrierType._size];
			CarrierType.displayStrings = new string[CarrierType._size];
			CarrierType.displayValues = new CarrierType[CarrierType._size];
			CarrierType.CA_AGVPORT = new CarrierType(0);
			CarrierType.CA_FULL = new CarrierType(1);
			CarrierType.CA_EMPTY = new CarrierType(2);
			CarrierType.CA_CLEANREQUEST = new CarrierType(3);
			CarrierType.CA_ERROR = new CarrierType(4);
			CarrierType.CA_BOX = new CarrierType(5);
			CarrierType.CA_CST = new CarrierType(6);
			CarrierType.CA_TRAY = new CarrierType(7);
			CarrierType.CA_IPS = new CarrierType(8);
			CarrierType.CA_TN = new CarrierType(9);
			CarrierType.IT_ENUM_MAX = new CarrierType(2147483647);
			CarrierType.displayStrings[0] = "AGV";
			CarrierType.displayStrings[1] = "FULL";
			CarrierType.displayStrings[2] = "EMPTY";
			CarrierType.displayStrings[3] = "CLEAN";
			CarrierType.displayStrings[4] = "ERROR";
			CarrierType.displayStrings[5] = "BOX";
			CarrierType.displayStrings[6] = "CST";
			CarrierType.displayStrings[7] = "TRAY";
			CarrierType.displayStrings[8] = "IPS";
			CarrierType.displayStrings[9] = "TN";
			CarrierType.displayValues[0] = CarrierType.CA_AGVPORT;
			CarrierType.displayValues[1] = CarrierType.CA_FULL;
			CarrierType.displayValues[2] = CarrierType.CA_EMPTY;
			CarrierType.displayValues[3] = CarrierType.CA_CLEANREQUEST;
			CarrierType.displayValues[4] = CarrierType.CA_ERROR;
			CarrierType.displayValues[5] = CarrierType.CA_BOX;
			CarrierType.displayValues[6] = CarrierType.CA_CST;
			CarrierType.displayValues[7] = CarrierType.CA_TRAY;
			CarrierType.displayValues[8] = CarrierType.CA_IPS;
			CarrierType.displayValues[9] = CarrierType.CA_TN;
		}
		public static string ValueToString(CarrierType val)
		{
			string result;
			if (val == null)
			{
				result = "";
			}
			else
			{
				switch (val.Value())
				{
				case 0:
					result = CarrierType.displayStrings[0];
					break;
				case 1:
					result = CarrierType.displayStrings[1];
					break;
				case 2:
					result = CarrierType.displayStrings[2];
					break;
				case 3:
					result = CarrierType.displayStrings[3];
					break;
				case 4:
					result = CarrierType.displayStrings[4];
					break;
				case 5:
					result = CarrierType.displayStrings[5];
					break;
				case 6:
					result = CarrierType.displayStrings[6];
					break;
				case 7:
					result = CarrierType.displayStrings[7];
					break;
				case 8:
					result = CarrierType.displayStrings[8];
					break;
				case 9:
					result = CarrierType.displayStrings[9];
					break;
				default:
					result = "";
					break;
				}
			}
			return result;
		}
		public static CarrierType StringToValue(string val)
		{
			CarrierType result;
			if (Helper.IsNullOrEmpty(val))
			{
				result = CarrierType.IT_ENUM_MAX;
			}
			else
			{
				for (int i = 0; i < CarrierType.displayStrings.Length; i++)
				{
					if (val.Equals(CarrierType.displayStrings[i]))
					{
						result = CarrierType.displayValues[i];
						return result;
					}
				}
				result = null;
			}
			return result;
		}
		public int Value()
		{
			return this._value;
		}
		public static CarrierType From_Int(int value)
		{
			CarrierType result;
			if (value >= 0 && value < CarrierType._size)
			{
				result = CarrierType._array[value];
			}
			else
			{
				result = CarrierType.IT_ENUM_MAX;
			}
			return result;
		}
		protected CarrierType(int value)
		{
			this._value = value;
			if (value >= 0 && value < CarrierType._size)
			{
				CarrierType._array[this._value] = this;
			}
		}
		public bool Equals(CarrierType otherEnum)
		{
			return otherEnum.Value() == this._value;
		}
		public override string ToString()
		{
			return CarrierType.displayStrings[this._value];
		}
	}
}
